package com.itheima.d8_threaddemo;

import java.util.ArrayList;

public class ThreadTest {
    public static void main(String[] args) {
        // 目标：完成多线程的综合小案例
        // 红包雨游戏，某企业有100名员工，员工的工号依次是1, 2，3, 4，..到100。 //一百个线程
        // 现在公司举办了年会活动，活动中有一个红包雨环节，要求共计发出200个红包雨。
        // 其中小红包在[1 - 30]  元之间，总占比为80%，
        // 大红包[31-100]元，总占比为20%。
        // 分析：100个员工实际上就是100个线程，来竞争200个红包。

        /**
         * 步骤：1.创建100个线程,模拟100名员工来抢红包
         *        创建一个MyRunnalble的实现类 实现线程任务 重写run方法
         *        run方法中 进行抢红包
         *     2.准备200个红包 存储到集合中 String类型
         *       其中 40个 大红包 [31-100]元
         *          160个 小红包 [1-30]元
         *       全部添加到集合中
         *    3.run方法中，共享同一个红包雨 锁对象锁住
         *      4.启动100个线程，模拟100名员工来抢红包
         */
        //创建一个集合
        //调用工具类的红包
        ArrayList<String> hongbao = HongbaoUtil.getHongbao();
        //创建100个线程
        MyRunnable mr = new MyRunnable(hongbao);
        for (int i = 0; i < 100; i++) {
            synchronized(ThreadTest.class) {
                Thread t = new Thread(mr);
                //设置员工的编号 1-100
                t.setName(i + 1 + "号员工");
                t.start();
            }
        }
    }
}
